/*
 * Copyright (C) 2008 Alessandro Sivieri <alessandro.sivieri@chimera-bellerofonte.eu>.
 *
 *  This file is part of Daex.
 *
 *  Daex is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  Foobar is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
 */
/**
 * <p>Questo package contiene le classi dei modelli per tutto cio'
 * che nell'interfaccia grafica ha a che fare con liste e tabelle
 * (JTables, JLists, JComboBoxes); la logica ed i tipi dell'applicativo
 * sono percio' situati qui.</p>
 * <p>I modelli qui presentati possono avere in comune la base di dati
 * dell'applicativo o meno; nel primo caso chiaramente le liste interne
 * di memorizzazione seguono le modifiche effettuate in altre zone
 * del programma, tuttavia affinche' vengano sempre sincronizzate le
 * parti visive <b>e' necessario</b> (salvo differenti decisioni
 * (programmatiche) richiamare i metodi che comunicano tali variazioni
 * e che sono sempre presenti in queste classi.</p>
 * <p>NOTA: una classe che voglia implementare correttamente questo set
 * <b>deve necessariamente</b> agganciarsi come listener al modello
 * della tabella principale (tracce) e a fronte di modifiche rilevare
 * correttamente cambiamenti ai titoli e propagarli alle liste laterali
 * (con gli appositi metodi di queste) come specificato nel paragrafo
 * precedente. I titoli delle canzoni sono i parametri cui
 * le liste fanno riferimento, e possono cambiare a fronte di variazioni
 * nella colonna del titolo o in quella della traccia corrispondente.</p>
 * <p>Vengono infine presentate anche le classi di gestione del drag-and-drop,
 * sia come classe astratta che come implementazione completa.</p>
 * 
 * @author Sivieri Alessandro
 * @author Vitucci Nicola
 */
package eu.chimera_bellerofonte.tesi.ui.models;